This invention relates to an execution unit of a central processing unit within a data processing or computer system, and more particularly, to a circuit utilized for the execution of data manipulation type instructions including shift, move and rotate instructions.
In computer systems, various type computer words are defined having specific formats, including instruction words having a specified instruction format and data words having a plurality of predetermined data formats. In order to maximize the efficiency of the overall computer system, the data words can take on a variety of formats. The formats are defined to maximize memory storage efficiency, to minimize the time required for the conversion to an output device format, to maintain the data in a format readily available to the execution units, etc, the data selection being made by the designer to achieve one or more of the aforementioned objectives as they relate to the computer word size.
The various alpha, numeric, and special characters can be defined in a computer in a variety of ways. In many present, existing systems the characters are defined utilizing a grouping of eight bits in a coded format, commonly known as an 8-bit binary coded decimal (BCD) format. This grouping of eight bits allows sufficient capacity to define all the alpha characters, both upper and lower case, the numeric characters, and a variety of special characters, the 8-bit BCD format having achieved a high degree of standardization within the computer industry. In addition, the eight bits are divisible into the standard computer word sizes of many computer systems, these computer systems utilizing 8-bit bytes, or words of 16, 24, or 32 bits. These computer word sizes being divisible by 8 allow for a high degree of symmetry which is highly desirable in data manipulation. However, in some large data systems, a computer word size of 36 bits is sometimes defined.
In addition, to utilizing the aforementioned 8-bit format, data word formats can be defined utilizing a grouping of 4 bits or 6 bits for defining numeric characters. By defining multiple data formats for numeric characters, the programmer is given the flexibility to realize the aforementioned objectives.
Before any arithmetic operations can be performed, the data formats must be uniform. Hence, an operand having one type of data format must be converted to the data format of a second operand, i.e., the data formats of the two operands must be the same. Also, the numeric operands must be aligned, e.g., right justified or compensated for scale factor difference.
In previous systems, alignment of many data formats was performed a character at a time. The present system provides for aligning data a word at a time, achieving a significant speed increase in processing, i.e., aligning, the data.